#include <iostream>
using namespace std;

// class date
// {
// public:
//     date (int year, int month, int day)
//         : _year(year)
//         , _month(month)
//         , _day(day)
//     {}
// private:
//     int _year;
//     int _month;
//     int _day;
// };

// class a
// {
// public:
//     a(int a)
//         :_a(a)
//     {}
//
// private:
//     int _a;
// };
//
// class b
// {
// public:
//     b(int a, int ref)
//         :_aobj(a)
//         ,_ref(ref)
//         ,_n(10)
//     {}
// private:
//     a _aobj;
//     int& _ref;
//     const int _n;
// };

// class a
// {
// public:
//      explicit a(int a)
//         :_a1(a)
//         ,_a2(_a1)
//     {}
//
//     void print() const
//     {
//         cout << _a1 << " " << _a2 << endl;
//     }
// private:
//     int _a2;
//     int _a1;
// };
//
// int main()
// {
//     a aa(1);
//     aa.print();
//     return 0;
// }

// class a
// {
// public:
//     a()
//     {
//         ++_scount;
//     }
//
//     a(const a& a)
//     {
//         ++_scount;
//     }
//
//     ~a()
//     {
//         --_scount;
//     }
//
//     static int GetScount()
//     {
//         return _scount;
//     }
// private:
//     static int _scount;
// };
//
// int a::_scount = 0;
//
// int main()
// {
//     cout << a::GetScount() << endl;
//     a a1;
//     a a2;
//     a a3(a1);
//     cout << a::GetScount() << endl;
//     return 0;
// }

class MyClass
{
private:
    int value;

public:
    explicit MyClass(int v) : value(v) {}

    // 声明友元函数
    friend ostream& operator<<(ostream& os, const MyClass& obj);
};

// 定义非成员函数
ostream& operator<<(ostream& os, const MyClass& obj) {
    os << "Value: " << obj.value;
    return os;
}

int main() {
    MyClass obj(42);
    cout << obj << endl; // 输出: Value: 42
    return 0;
}













